package com.yonyou.cyxdms.sysmanage.client.service.login;

import java.util.List;
import java.util.Set;

import com.yonyou.cyxdms.sysmanage.client.vo.employee.EmployeeOrgsVO;
import com.yonyou.cyxdms.sysmanage.client.vo.employee.EmployeeVO;
import com.yonyou.cyxdms.sysmanage.client.vo.employee.UserInfoVO;
import com.yonyou.cyxdms.sysmanage.client.vo.role.RoleVO;
import com.yonyou.cyxdms.sysmanage.client.vo.role.UserbyRoleVO;

public interface EmployeeClientService {

    /**
     * 获取员工信息
     *
     * @param
     * @return java.util.List
     * @author maxingjian
     * @since 2019/9/04
     */
    public List<EmployeeVO> getEmployees(String queryCondition);

    /**
     * 查询本组织下的销售人员
     *
     * @author 李贺
     * @since 2019/9/9
     */
    public List<EmployeeOrgsVO> getSalesman();


    /**
     * 根据roleposition获取user
     *
     * @author maxingjian
     * @since 2019/9/18
     */
    public List<UserbyRoleVO> getUserInfoByRolePosition(String positionCode, String companyId, String ownerCode);

    /**
     * 根据role获取user
     *
     * @author maxingjian
     * @since 2019/9/18
     */
    public List<UserbyRoleVO> getUserInfoByRole(String roleCode, String companyId);


    /**
     * 根据userid获取user相关
     *
     * @author maxingjian
     * @since 2019/9/18
     */
    public UserInfoVO getUserInfoByUserId(String userId);
    
    /**
     * 查询用户列表
     *
     * @author jianghao
     * @since 2020/02/04
     */
    List<UserInfoVO> getUserInfoList(Set<String> userIdSet);


    /**
     * 通过userid获取经理的userid
     *      * @author maxingjian
     *      * @since 2019/11/25
     */
    public List<String> getManagerIdByUserId(String userId, String positionCode,String orgId);

    /**
     * 根据当前人的职位id获取角色类别
     *      * @author maxingjian
     *      * @since 2019/12/31
     */
    public String getPositionByUserOrgId(Long userOrgId);

    /**
     * 获取本经销商下人员信息（包括离职状态）
     * @author liushiwen
     * @param
     * @return
     */
    public List<EmployeeVO> getEmployeeByUserIds(String userIds);


    /**
     * 通过name获取role
     * @author wst
     * @param
     * @return
     */
    public List<RoleVO> getPresetRoleByName(List<String> names);

}
